home *** CD-ROM | disk | FTP | other *** search
/ Suzy B Software 2 / Suzy B Software CD-ROM 2 (1994).iso / picmanip / pic_r2z / topmap / vdiproc.pas < prev    next >
Encoding:
Pascal/Delphi Source File  |  1995-05-05  |  5.0 KB  |  204 lines

  1. procedure AES_CALL(     OP : integer;
  2.                     var int_in : int_in_parms;
  3.                     var int_out : int_out_parms;
  4.                     var addr_in : addr_in_parms;
  5.                     var addr_out : addr_out_parms
  6.                   );
  7. external;
  8.  
  9. procedure VDI_CALL( CMD, SUB_CMD, NINTS, NPTS : integer;
  10.                     var ctrl : ctrl_parms;
  11.                     var int_in : int_in_parms; var int_out : int_out_parms;
  12.                     var pts_in : pts_in_parms; var pts_out : pts_out_parms;
  13.                     translate : boolean
  14.                   );
  15. external;
  16.  
  17. procedure vsf_interior( FILL_STYLE : integer );
  18.   begin
  19.     INT_IN[ 0 ] := FILL_STYLE;
  20.     VDI_CALL( 23, 0, 1, 0,
  21.               CONTROL,
  22.               INT_IN, INT_OUT,
  23.               PTS_IN, PTS_OUT,
  24.               false
  25.             );
  26.   end;
  27.  
  28. procedure vsf_color( COLOR_INDEX : integer );
  29.   begin
  30.     INT_IN[ 0 ] := COLOR_INDEX;
  31.     VDI_CALL( 25, 0, 1, 0,
  32.               CONTROL,
  33.               INT_IN, INT_OUT,
  34.               PTS_IN, PTS_OUT,
  35.               false
  36.             );
  37.   end;
  38.  
  39. procedure vsf_style( STYLE_INDEX : integer );
  40.   begin
  41.     INT_IN[ 0 ] := STYLE_INDEX;
  42.     VDI_CALL( 24, 0, 1, 0,
  43.               CONTROL,
  44.               INT_IN, INT_OUT,
  45.               PTS_IN, PTS_OUT,
  46.               false
  47.             );
  48.   end;
  49.  
  50. procedure vst_alignment( HOR_IN, VERT_IN : integer;
  51.                          var HOR_OUT, VERT_OUT : integer
  52.                        );
  53.   begin
  54.     INT_IN[ 0 ] := HOR_IN;
  55.     INT_IN[ 1 ] := VERT_IN;
  56.     VDI_CALL( 39, 0, 2, 0,
  57.               CONTROL,
  58.               INT_IN, INT_OUT,
  59.               PTS_IN, PTS_OUT,
  60.               false
  61.             );
  62.     HOR_OUT  := INT_OUT[ 0 ];
  63.     VERT_OUT := INT_OUT[ 1 ];
  64.   end;
  65.  
  66. procedure vsl_ends( BEG_STYLE, END_STYLE : integer );
  67.   begin
  68.     INT_IN[ 0 ] := BEG_STYLE;
  69.     INT_IN[ 1 ] := END_STYLE;
  70.     VDI_CALL( 108, 0, 2, 0,
  71.               CONTROL,
  72.               INT_IN, INT_OUT,
  73.               PTS_IN, PTS_OUT,
  74.               false
  75.             );
  76.   end;
  77.  
  78. procedure vsl_color( COLOR_INDEX : integer );
  79.   begin
  80.     INT_IN[ 0 ] := COLOR_INDEX;
  81.     VDI_CALL( 17, 0, 1, 0,
  82.               CONTROL,
  83.               INT_IN, INT_OUT,
  84.               PTS_IN, PTS_OUT,
  85.               false
  86.             );
  87.   end;
  88.  
  89. procedure vsl_width( LINE_WIDTH : integer );
  90.   begin
  91.     PTS_IN[ 0 ] := LINE_WIDTH;
  92.     PTS_IN[ 1 ] := 0;
  93.     VDI_CALL( 16, 0, 0, 1,
  94.               CONTROL,
  95.               INT_IN, INT_OUT,
  96.               PTS_IN, PTS_OUT,
  97.               false
  98.             );
  99.   end;
  100.  
  101. procedure mfdbptr_to_ar2( MP : mfdbptr;
  102.                           var MA : AR2
  103.                         );
  104.   var
  105.     COERCE : record
  106.                case boolean of
  107.                  false : ( MPTR : mfdbptr );
  108.                  true  : ( MARR : AR2 );
  109.              end;
  110.   begin
  111.     COERCE.MPTR := MP;
  112.     MA[ 0 ] := COERCE.MARR[ 0 ];
  113.     MA[ 1 ] := COERCE.MARR[ 1 ];
  114.   end;
  115.  
  116.  
  117. procedure vro_cpyform( WR_MODE : integer;
  118.                        PXY : PXYARRAY;
  119.                        SOURCE, DESTIN : mfdbptr
  120.                      );
  121.   var
  122.     I : integer;
  123.     AARRAY : AR2;
  124.   begin
  125.     INT_IN[ 0 ] := WR_MODE;
  126.     for I := 0 to 7 do PTS_IN[ I ] := PXY[ I ];
  127.     mfdbptr_to_ar2( SOURCE, AARRAY );
  128.     CONTROL[ 7 ] := AARRAY[ 0 ];        CONTROL[ 8 ] := AARRAY[ 1 ];
  129.     mfdbptr_to_ar2( DESTIN, AARRAY );
  130.     CONTROL[ 9 ] := AARRAY[ 0 ];        CONTROL[ 10 ] := AARRAY[ 1 ];
  131.     VDI_CALL( 109, 0, 1, 4,
  132.               CONTROL,
  133.               INT_IN, INT_OUT,
  134.               PTS_IN, PTS_OUT,
  135.               false
  136.             );
  137.   end;
  138.  
  139.  
  140. procedure v_pline( COUNT : integer;
  141.                    PXY   : PXYARRAY
  142.                  );
  143.   var
  144.     I : integer;
  145.   begin
  146.     for I := 0 to (2*COUNT)-1 do PTS_IN[ I ] := PXY[ I ];
  147.     VDI_CALL( 6, 0, 0, COUNT,
  148.               CONTROL,
  149.               INT_IN, INT_OUT,
  150.               PTS_IN, PTS_OUT,
  151.               false
  152.             );
  153.  
  154.   end;
  155.  
  156.  
  157. procedure v_gtext( X, Y : integer;
  158.                    TEXT : string
  159.                  );
  160.   var
  161.     I : integer;
  162.  
  163.   begin
  164.     PTS_IN[ 0 ] := X;
  165.     PTS_IN[ 1 ] := Y;
  166.     for I := 1 to length(TEXT) do INT_IN[ I - 1 ] := ord( TEXT[ I ] );
  167.     VDI_CALL( 8, 0, length(TEXT), 2,
  168.               CONTROL,
  169.               INT_IN, INT_OUT,
  170.               PTS_IN, PTS_OUT,
  171.               false
  172.             );
  173.   end;
  174.  
  175. procedure v_bar( XUL, YUL, XLR, YLR : integer );
  176.   begin
  177.     PTS_IN[ 0 ] := XUL;
  178.     PTS_IN[ 1 ] := YUL;
  179.     PTS_IN[ 2 ] := XLR;
  180.     PTS_IN[ 3 ] := YLR;
  181.     VDI_CALL( 11, 1, 0, 4,
  182.               CONTROL,
  183.               INT_IN, INT_OUT,
  184.               PTS_IN, PTS_OUT,
  185.               false
  186.             );
  187.   end;
  188.  
  189.  
  190. procedure v_ellipse( X, Y, XRADIUS, YRADIUS : integer );
  191.   begin
  192.     PTS_IN[ 0 ] := X;
  193.     PTS_IN[ 1 ] := Y;
  194.     PTS_IN[ 2 ] := XRADIUS;
  195.     PTS_IN[ 3 ] := YRADIUS;
  196.  
  197.     VDI_CALL( 11, 5, 0, 4,
  198.               CONTROL,
  199.               INT_IN, INT_OUT,
  200.               PTS_IN, PTS_OUT,
  201.               false
  202.             );
  203.   end;
  204.